package com.yizhuoyan.his.service.department;

import com.yizhuoyan.his.ao.DepartmentAo;
import com.yizhuoyan.his.qco.DepartmentQueryQco;
import com.yizhuoyan.his.entity.HosDepartmentEntity;
import com.yizhuoyan.his.qco.DepartmentQueryQco;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 科室相关服务
 */
@Service
public interface DepartmentManageService {

    /**
     * 添加科室
     * @param ao
     * @throws Exception
     */
    public void addDepartment(DepartmentAo ao)throws Exception;

    /**
     * 修改科室
     * @param id 需要修改科室id
     * @param ao 输入 要修改的 选项
     * @throws Exception
     */
    public void modifyDepartment(Long id,DepartmentAo ao)throws Exception;

    /**
     * 科室查询
     * @param qco 输入要查询的选项
     * @return 返回查询实体
     * @throw条件s Exception
     */
    public List<HosDepartmentEntity> queryDepartments(DepartmentQueryQco qco)throws  Exception;


    /**
     * 删除科室
     * @param id 输入科室id
     * @throws Exception
     */
    public void removeDepartmentById(Long id)throws Exception;

    /**
     * 通过科室类别来查询科室
     * @param categoryId 输入查询科室类别id
     * @return 返回科室类别实体集合
     * @throws Exception
     */
    public List<HosDepartmentEntity> queryDepartmentByCategoryId(Long categoryId)throws Exception;

    /**
     * 通过科室类型id查询科室
     * @param typeConstantId 科室类型id
     * @return 返回科室类别实体集合
     * @throws Exception
     */
    public List<HosDepartmentEntity> queryDepartmentByTypeConstantId(Long typeConstantId)throws Exception;

    /**
     * 通过科室名称查询科室
     * @param name 科室名称
     * @return 返回科室类别实体集合
     * @throws Exception
     */
    public List<HosDepartmentEntity> queryDepartmentByName(String name)throws Exception;

    /**
     * 通过科室编码查询科室
     * @param code 科室编码
     * @return 返回科室类别实体集合
     * @throws Exception
     */
    public List<HosDepartmentEntity> queryDepartmentByCode(String code)throws Exception;



}
